/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.uniceub.fsw.talentos.facade;

import br.uniceub.fsw.arquitetura.persistencia.transacao.Transacao;
import br.uniceub.fsw.arquitetura.servico.exception.NegocioException;
import br.uniceub.fsw.talentos.bo.CargoBO;
import br.uniceub.fsw.talentos.bo.SalarioBO;
import br.uniceub.fsw.talentos.dao.CargoDAO;
import br.uniceub.fsw.talentos.dao.SalarioDAO;
import br.uniceub.fsw.talentos.vo.CargoVO;
import br.uniceub.fsw.talentos.vo.SalarioVO;
import br.uniceub.fsw.util.TabelaHtml;
import java.util.ArrayList;
import java.util.List;
import java.io.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.DateFormat;
import java.util.Date;

/**
 * Facade da entidade Cargo Salario.
 *
 * @author Marcelo Moraes - 2009
 */
public class CargoSalarioFacade {

    /**
     * Variavel auxiliar para para tratamento de erros
     * de preenchimento
     */
    private ArrayList<String> listaErrosUsuario;

    private String erro;

    /**
     * Mensagem de retorno do sistema.
     */
    private String message;
    /**
     * Value object do cargo.
     */
    private CargoVO cargo;
    /**
     * Objeto de acesso aos dados de cargo.
     */
    private CargoDAO cargoDao;
    /**
     * Objeto da camada de negócio de salario.
     */
    private CargoBO cargoBo;
    /**
     * Value object do salario.
     */
    private SalarioVO salario;
    /**
     * Objeto de acesso aos dados de salario.
     */
    private SalarioDAO salarioDao;
    /**
     * Objeto da camada de negócio de salario.
     */
    private SalarioBO salarioBo;

    /**
     * Construtor da classe.
     */
    public CargoSalarioFacade() {
        this.cargoDao = new CargoDAO();
        this.salarioDao = new SalarioDAO();
        this.cargoBo = new CargoBO();
        this.salarioBo = new SalarioBO();
        this.listaErrosUsuario = new ArrayList<String>();

    }

    public StringBuffer retornaErrosAoUsuario(){

        StringBuffer sb = new StringBuffer();

        if(!this.listaErrosUsuario.isEmpty()){

            sb.append("Erro(s):");
            sb.append("<ul>");

            for(int i = 0; i < listaErrosUsuario.size(); i++){


                String erroAtual = listaErrosUsuario.get(i);
                sb.append("<li>" +erroAtual +"</li>");

            }

        }

        sb.append("</ul>");

        return sb;

    }

    /**
     * Getter da mensagem de retorno.
     *
     * @return Mensagem de retorno.
     */
    public String getMessage() {
        String retorno = null;
        if (this.message == null || this.message.equals("")) {
            retorno = "&nbsp";
        } else {
            retorno = this.message;
        }
        return retorno;
    }

    /**
     * Setter da mensagem de retorno.
     *
     * @param message Mensagem de retorno.
     */
    public void setMessage(String message) {
        this.message = message;
    }

    /**
     * Responsável por executar a operação selecionada pelo usuário.
     *
     * @param req Requisição web do tipo HTTP.
     * @param resp Resposta da requisição HTTP.
     */
    public void operacao(HttpServletRequest req, HttpServletResponse resp) {
        String oper = req.getParameter("operacao");

        if (oper != null) {

            if (oper.equals("consultar")) {
                this.consultar(req, resp);
            }
            if (oper.equals("incluir")) {
                this.incluir(req, resp);
            }

            if (oper.equals("alterar")) {
                this.alterar(req, resp);
            }

            if (oper.equals("excluir")) {
                this.excluir(req, resp);
            }
            if (oper.equals("confirmar")) {
                this.confirmar(req, resp);
                }
            if (oper.equals("recarregar")) {
                this.recarregar(req, resp);
            }
            if (oper.equals("carregar")) {
                this.carregar(req, resp);
            }
            if (oper.equals("detalhar")) {
                this.recarregar(req, resp);
            }
        }
    }

    /**
     * Retorna o cargo.
     *
     * @return Objeto cargo.
     */
    public CargoVO getCargo() {
        return this.cargo;
    }

    /**
     * Seta o cargo.
     *
     * @param cargo Objeto cargo.
     */
    public void setCargo(CargoVO cargo) {
        this.cargo = cargo;
    }

    /**
     * Retorna o salario.
     *
     * @return Objeto salario.
     */
    public SalarioVO getSalario() {
        return this.salario;
    }

    /**
     * Seta o salario.
     *
     * @param salario Objeto salario.
     */
    public void setSalario(SalarioVO salario) {
        this.salario = salario;
    }

    /**
     *
     * @return
     */
    public ArrayList<String> getListaErrosUsuario() {
        return listaErrosUsuario;
    }

    /**
     *
     * @param listaErrosUsuario
     */
    public void setListaErrosUsuario(ArrayList<String> listaErrosUsuario) {
        this.listaErrosUsuario = listaErrosUsuario;
    }

    /**
     * Carregar um CargoSalario.
     *
     * @param req Requisição web do tipo HTTP.
     * @param resp Resposta da requisição HTTP.
     */
    public void consultar(HttpServletRequest req, HttpServletResponse resp) {
        String idCargoTmp = req.getParameter("idCargo");
//        String idSalarioTmp = req.getParameter("idSalario");

        Integer idCargo = null;
//        Integer idSalario = null;

        if((idCargoTmp == null || idCargoTmp.equals("")) /* && (idSalarioTmp == null || idSalarioTmp.equals(""))*/) {
            return;
        } else {
            idCargo = Integer.parseInt(idCargoTmp);
//            idSalario = Integer.parseInt(idSalarioTmp);
        }

        this.cargo = cargoDao.consultarPorId(idCargo);
//        this.salario = salarioDao.consultarPorId(idSalario);
    }

    public void incluir(HttpServletRequest req, HttpServletResponse resp) {
        String noCargo = req.getParameter("noCargo");
        String dsAtividade = req.getParameter("dsAtividade");
        String cdCargo = req.getParameter("cdCargo");
        String vlSalario = req.getParameter("vlSalario");
        String dtInicioVigencia = req.getParameter("dtInicioVigencia");
        String dtFimVigencia = req.getParameter("dtFimVigencia");
        
        cargo = new CargoVO();
        cargo.setNoCargo(noCargo);
        cargo.setDsAtividade(dsAtividade); //cdGrupoTrabalho==null?null:cdGrupoTrabalho==""?null:Integer.parseInt(cdGrupoTrabalho));
        
        salario = new SalarioVO();
        salario.setVlSalario(vlSalario==null?null:vlSalario==""?null:Integer.parseInt(vlSalario));
        salario.setDtInicioVigencia(Conversor.stringToSqlDate(dtInicioVigencia));
        salario.setDtFimVigencia(Conversor.stringToSqlDate(dtFimVigencia));

        String mensagem = null;

       try {

                if((noCargo != null) && (noCargo.trim().length() < 4 )){

                    erro = new String("O nome do cargo precisa ter pelo menos 3 caracteres.");
                    this.listaErrosUsuario.add(erro);

                    //mensagem = "O nome do cargo precisa de pelo menos 3 caracteres.";

                }

         } catch ( Exception e ) {
            mensagem = "";
         }

        try{

            if((dtInicioVigencia.trim().length() == 0) || (dtFimVigencia.trim().length() == 0)){

                erro = new String("As datas de inicio e fim de vigencia sao obrigatorias.");
                this.listaErrosUsuario.add(erro);

                //mensagem = "As datas de inicio e fim de vigencia sao obrigatorias.";

            }
            if((dtInicioVigencia.trim().length() == 0)){

                erro = new String("A data de inicio de vigencia e obrigatoria.");
                this.listaErrosUsuario.add(erro);

                //mensagem = "A data de inicio de vigencia e obrigatoria";

            }

            if((dtFimVigencia.trim().length() == 0)){

                erro = new String("A data de fim de vigencia e obrigatoria.");
                this.listaErrosUsuario.add(erro);
                //mensagem = "A data de fim de vigencia e obrigatoria";

            }


        }catch(Exception e){

            mensagem = "";
        }

        try {

            if(!Conversor.validaData(dtInicioVigencia)){

                erro = new String("Data do inicio de vigencia invalida.");
                this.listaErrosUsuario.add(erro);
                //mensagem = "Data do inicio de vigencia invalida.";

            }

            if(!Conversor.validaData(dtFimVigencia)){

                erro = new String("Data do fim da vigencia invalida.");
                this.listaErrosUsuario.add(erro);
                //mensagem = "Data do fim da vigencia invalida";

            }

         } catch ( Exception e ) {
            mensagem = "";
         }

        try{

            if(Conversor.comparaDatas(dtInicioVigencia, dtFimVigencia)){

                erro = new String("Data de inicio maior que a data de termino.");
                this.listaErrosUsuario.add(erro);
                //mensagem = "Data de inicio maior que data de termino";

            }

        }catch(Exception ex){

                mensagem = "";

            }

        // Validações da BO
 //       try {
 //           cargoBo.validarVOUnico(cargo);
 //           salarioBo.validarVOUnico(salario);
 //       } catch(NegocioException ex) {
 //          mensagem = ex.getMessage();
 //       }

        //if(mensagem == null || mensagem.equals("")) {
        if(this.listaErrosUsuario.isEmpty()){
            
            try{

                Transacao.iniciar();


                cargoDao.inserir(cargo);

                //ROTINA PARA INSERIR CD_CARGO NECESSARIA

               salarioDao.inserir(salario);
               // vincularSalarioAoCargo(cargo, salario);
               

                Transacao.efetivar();

                mensagem = "Cargo e Salario incluídos com sucesso.";
            } catch (Exception ex) {
                Transacao.desfazer();

                mensagem = "Problema na inclusão do Cargo e Salario: " + ex.getMessage();

                cargo = null;
                salario = null;
            }
        } else {
            cargo = null;
            salario = null;
        }

        this.message = mensagem;
    }

    public void alterar(HttpServletRequest req, HttpServletResponse resp) {
        String idCargo = req.getParameter("idCargo");
        String noCargo = req.getParameter("noCargo");
        String dsAtividade = req.getParameter("dsAtividade");
        String vlSalario = req.getParameter("vlSalario");
        String dtInicioVigencia = req.getParameter("dtInicioVigencia");
        String dtFimVigencia = req.getParameter("dtFimVigencia");

        cargo = new CargoVO();
        cargo.setIdCargo(Integer.parseInt(idCargo));
        cargo.setNoCargo(noCargo);
        cargo.setDsAtividade(dsAtividade); //cdGrupoTrabalho==null?null:cdGrupoTrabalho==""?null:Integer.parseInt(cdGrupoTrabalho));

        salario = new SalarioVO();
        salario.setVlSalario(vlSalario==null?null:vlSalario==""?null:Integer.parseInt(vlSalario));
        salario.setCdCargo(Integer.parseInt(idCargo));
        salario.setDtInicioVigencia(Conversor.stringToSqlDate(dtInicioVigencia));
        salario.setDtFimVigencia(Conversor.stringToSqlDate(dtFimVigencia));
        String mensagem = null;

        try {
            
         } catch ( Exception e ) {
            mensagem = "";
         }
        try {

            if(!Conversor.validaData(dtInicioVigencia)){

                mensagem = "Data do inicio de vigencia invalida.";

            }

            if(!Conversor.validaData(dtFimVigencia)){

                mensagem = "Data do fim da vigencia invalida";

            }

         } catch ( Exception e ) {
            mensagem = "";
         }

        try{

            if(Conversor.comparaDatas(dtInicioVigencia, dtFimVigencia)){

                mensagem = "Data de inicio maior que data de termino";

            }

        }catch(Exception ex){

                mensagem = "";

            }

        // Validações da BO
/*        try {
            cargoBo.validarAlterarVOUnico(cargo);
            salarioBo.validarAlterarVOUnico(salario);
        } catch(NegocioException ex) {
            mensagem = ex.getMessage();
        } */

        if(mensagem == null || mensagem.equals("")) {
            try {
                Transacao.iniciar();

                cargoDao.alterar(cargo);

                //ROTINA PARA ALTERACAO COM O CD_CARGO NECESSARIA

                salarioDao.alterar(salario);

                Transacao.efetivar();

                mensagem = "Cargo e salario alterados com sucesso.";
            } catch (Exception ex) {
                Transacao.desfazer();

                mensagem = "Problema na alteração do Cargo e salario: " + ex.getMessage();

                cargo = null;
                salario = null;
            }
        } else {
            cargo = null;
            salario = null;
        }

        this.message = mensagem;
    }

    public void excluir(HttpServletRequest req, HttpServletResponse resp) {
        String idCargo = req.getParameter("idCargo");
        String cdCargo = req.getParameter("cdCargo");
        String idSalario = req.getParameter("idSalario");

        cargo = new CargoVO();
        cargo.setIdCargo(Integer.parseInt(idCargo));

        salario = new SalarioVO();
        salario.setCdCargo(Integer.parseInt(cdCargo));
        salario.setIdSalario(Integer.parseInt(idSalario));

        String mensagem = null;

        /*
        // Validações da BO
        try {

            talentoBo.validarExclusao(talento);


        } catch(NegocioException ex) {
            mensagem = ex.getMessage();
        }
         *
         */

        if(mensagem == null || mensagem.equals("")) {
            try {
                Transacao.iniciar();

                cargoDao.excluir(cargo);

                //ROTINA PARA EXCLUSAO DE SALARIO NECESSARIA

                salarioDao.excluir(salario);

                Transacao.efetivar();

                mensagem = "Cargo e Salario excluídos com sucesso.";
            } catch (Exception ex) {
                Transacao.desfazer();

                mensagem = "Problema na exclusão do Cargo e Salario: " + ex.getMessage();
            }
        } else {
            cargo = null;
            salario = null;
        }

        this.message = mensagem;
    }

    public void confirmar(HttpServletRequest req, HttpServletResponse resp) {
        String noCargo = req.getParameter("noCargo");
        String dsAtividade = req.getParameter("dsAtividade");
        String cdCargo = req.getParameter("cdCargo");
        String vlSalario = req.getParameter("vlSalario");
        String dtInicioVigencia = req.getParameter("dtInicioVigencia");
        String dtFimVigencia = req.getParameter("dtFimVigencia");

        cargo = new CargoVO();
        cargo.setNoCargo(noCargo);
        cargo.setDsAtividade(dsAtividade); //cdGrupoTrabalho==null?null:cdGrupoTrabalho==""?null:Integer.parseInt(cdGrupoTrabalho));

        salario = new SalarioVO();
        salario.setCdCargo(cdCargo==null?null:cdCargo==""?null:Integer.parseInt(cdCargo));
        salario.setVlSalario(vlSalario==null?null:vlSalario==""?null:Integer.parseInt(vlSalario));
        salario.setDtInicioVigencia(new java.util.Date(dtInicioVigencia));
        salario.setDtFimVigencia(new java.util.Date(dtFimVigencia));/*new java.util.Date(Integer.parseInt(dtNascimento.substring(6,10)),
                Integer.parseInt(dtNascimento.substring(3,5)),
                Integer.parseInt(dtNascimento.substring(0,2))));*/
    }

    public TabelaHtml consultarCargoSalario(HttpServletRequest req, HttpServletResponse resp) {
        String nome = req.getParameter("noCargo");

        if((nome != null && !nome.equals(""))) {
            TabelaHtml tabela = new TabelaHtml();

            tabela.setCampoRetorno("idCargo");

            tabela.adicionarTitulo("Id");
            tabela.adicionarTamanho(0);
            tabela.adicionarTipo("Integer");
            tabela.adicionarStatus(false);

            tabela.adicionarTitulo("Nome");
            tabela.adicionarTamanho(80);
            tabela.adicionarTipo("String");
            tabela.adicionarStatus(true);

            tabela.gravarCampos();

            CargoVO exemplo = new CargoVO();

            exemplo.setNoCargo(nome);
//            exemploSalario.setVlSalario(valor);


            // Lista de Cargos e salarios
            List<CargoVO> cargo = cargoDao.consultarPorExemplo(exemplo);

            // Adiciona os valores de cada cargo nas listas de ids e nomes
            for(int i = 0; i < cargo.size(); i++) {
                tabela.adicionarRegistro(converterVoParaString(cargo.get(i)));
            }

             return tabela;
            }
        return null;
    }

    public void carregar(HttpServletRequest req, HttpServletResponse resp) {

        String noArquivo = req.getParameter("noArquivo");
        String mensagem = null;

        File arquivo = new File(noArquivo);

        try{

            BufferedReader in = new BufferedReader(new FileReader(arquivo));
            String s;

            s = in.readLine();
            while (s !=null){
            System.out.println(s);
            s = in.readLine();
        }
            in.close();
        }catch (FileNotFoundException e1){
            mensagem = "Problema no carregamento do arquivo.";

        }catch(IOException e2){
            e2.printStackTrace();
        }

        if (mensagem == null || mensagem.equals("")) {
            try {
                Transacao.iniciar();

         //       cargoDao.inserir(cargo);
       //         salarioDao.inserir(salario);

                Transacao.efetivar();

                mensagem = "Cargo e SSalario incluído com sucesso.";
            } catch (Exception ex) {
                Transacao.desfazer();

                mensagem = "Problema na inclusão do Cargo e SSalario: " + ex.getMessage();

                cargo = null;
                salario = null;
            }
        } else {
            cargo = null;
            salario = null;
        }

        this.message = mensagem;
    }

    /**
     * Recarregar a página após alguma ação de seleção de combo.
     *
     * @param req Requisição web do tipo HTTP.
     * @param resp Resposta da requisição HTTP.
     */
    public void recarregar(HttpServletRequest req, HttpServletResponse resp) {
        String idCargo = req.getParameter("idCargo");
//        String idSalario = req.getParameter("idSalario");

        if (idCargo != null && !idCargo.isEmpty()) {
            cargo = cargoDao.consultarPorId(idCargo);
        }
//        if (idSalario != null && !idSalario.isEmpty()) {
//            salario = salarioDao.consultarPorId(idSalario);
//        }

    }

        /**
     * Retorna uma lista de cargos e salario a partir de parâmetros da tela
     *
     * @param req Requisição web do tipo HTTP.
     * @param resp Resposta da requisição HTTP.
     * @return objeto tabela com as informações necessárias
     */
    /*
    public TabelaHtml consultarTalentos(HttpServletRequest req, HttpServletResponse resp) {
        String nome = req.getParameter("noTalento");
        String cdHabilidade = req.getParameter("idHabilidade");
        String cdPerfil = req.getParameter("idPerfil");
        String cdGrupoTrabalho = req.getParameter("idGrupoTrabalho");
        String matricula = req.getParameter("mtRegistroUniceub");
        String oper = req.getParameter("operacao");

        if ((nome != null && !nome.equals("") ||
                matricula != null && !matricula.equals("") ||
                cdGrupoTrabalho != null && !cdGrupoTrabalho.equals("") ||
                cdHabilidade != null && !cdHabilidade.equals("") ||
                cdPerfil != null && !cdPerfil.equals("")) &&
                oper.equals("consultar")) {
            TabelaHtml tabela = new TabelaHtml();

            tabela.setCampoRetorno("idTalento");

            tabela.adicionarTitulo("Id");
            tabela.adicionarTamanho(0);
            tabela.adicionarTipo("Integer");
            tabela.adicionarStatus(false);

            tabela.adicionarTitulo("Nome");
            tabela.adicionarTamanho(60);
            tabela.adicionarTipo("String");
            tabela.adicionarStatus(true);

            tabela.adicionarTitulo("Matrícula");
            tabela.adicionarTamanho(20);
            tabela.adicionarTipo("String");
            tabela.adicionarStatus(true);

            tabela.gravarCampos();

            TalentoVO exemplo = new TalentoVO();

            exemplo.setNoTalento(nome);
            exemplo.setCdGrupoTrabalho(cdGrupoTrabalho.equals("")?null:Integer.parseInt(cdGrupoTrabalho));
            exemplo.setMtRegistroUniceub(matricula.equals("")?null:Integer.parseInt(matricula));

            HabilidadeDAO habilidadeDao = new HabilidadeDAO();

            Integer idHabilidade = cdHabilidade==null||cdHabilidade.equals("")?null:Integer.parseInt(cdHabilidade);

            HabilidadeVO habilidadeParametro = habilidadeDao.consultarPorId(idHabilidade);

            PerfilDAO perfilDao = new PerfilDAO();

            Integer idPerfil = cdPerfil==null||cdPerfil.equals("")?null:Integer.parseInt(cdPerfil);

            PerfilVO perfilParametro = perfilDao.consultarPorId(idPerfil);

            // Lista de talentos
            List<TalentoVO> talentos = talentoDao.consultarPorExemploPorParametros(exemplo, habilidadeParametro, perfilParametro);

            // Adiciona os valores de cada talento nas listas de ids e nomes
            for (int i = 0; i < talentos.size(); i++) {
                tabela.adicionarRegistro(converterVoParaString(talentos.get(i)));
            }

            return tabela;
        }

        return null;
    } */

    /**
     * Detalhar
     */
    /*
    public void detalhar(HttpServletRequest req, HttpServletResponse resp) {
        String cdTalento = req.getParameter("idTalento");


        this.cargo = this.cargoDao.consultarPorId(cdTalento.equals("")?null:Integer.parseInt(cdTalento));


    } */

    /**
     * Retorna uma lista de tipos de habilidade ordenada por nome
     *
     * @return lista com as informações necessárias
     */
    /*
    public List<List> consultarGruposTrabalho() {
        List<List> lista = new ArrayList<List>();

        GrupoTrabalhoDAO grupoTrabalhoDao = new GrupoTrabalhoDAO();

        List<GrupoTrabalhoVO> grupo = grupoTrabalhoDao.consultarTiposOrdenadoPorNome();

        for(int i = 0; i < grupo.size(); i++) {
            List<String> registro = new ArrayList<String>();
            registro.add(grupo.get(i).getIdGrupoTrabalho().toString());
            registro.add(grupo.get(i).getNoGrupoTrabalho());

            lista.add(registro);
        }

        return lista;
    } */
            /**
     * Retorna uma lista de tipos de habilidade ordenada por nome
     *
     * @return lista com as informações necessárias
     */
    /*
    public List<List> consultarPerfis() {
        List<List> lista = new ArrayList<List>();

        PerfilDAO perfilDao = new PerfilDAO();

        List<PerfilVO> perfis = perfilDao.consultarTiposOrdenadoPorNome();

        for(int i = 0; i < perfis.size(); i++) {
            List<String> registro = new ArrayList<String>();
            registro.add(perfis.get(i).getIdPerfil().toString());
            registro.add(perfis.get(i).getNoPerfil());

            lista.add(registro);
        }

        return lista;
    } */

        /**
     * Retorna uma lista de tipos de habilidade ordenada por nome
     *
     * @return lista com as informações necessárias
     */
    /*
    public List<List> consultarTiposHabilidade() {
        List<List> lista = new ArrayList<List>();

        TipoHabilidadeDAO tipoHabilidadeDao = new TipoHabilidadeDAO();

        List<TipoHabilidadeVO> tipos = tipoHabilidadeDao.consultarTiposOrdenadoPorNome();

        for(int i = 0; i < tipos.size(); i++) {
            List<String> registro = new ArrayList<String>();
            registro.add(tipos.get(i).getIdTipoHabilidade().toString());
            registro.add(tipos.get(i).getNoTipoHabilidade());

            lista.add(registro);
        }

        return lista;
    }

        public List<List> consultarHabilidadesPorTipo(HttpServletRequest req, HttpServletResponse resp) {
        String idTipoHabilidade_tmp = req.getParameter("idTipoHabilidade");

        Integer idTipoHabilidade = (idTipoHabilidade_tmp == null || idTipoHabilidade_tmp.equals(""))?null:Integer.parseInt(idTipoHabilidade_tmp);

        List<List> lista = new ArrayList<List>();

        HabilidadeDAO habilidadeDao = new HabilidadeDAO();

        List<HabilidadeVO> habilidades = habilidadeDao.consultarHabilidadesPorTipoOrdenadoPorNome(idTipoHabilidade);

        for(int i = 0; i < habilidades.size(); i++) {
            List<String> registro = new ArrayList<String>();
            registro.add(habilidades.get(i).getIdHabilidade().toString());
            registro.add(habilidades.get(i).getNoHabilidade());

            lista.add(registro);
        }

        return lista;
    } */

    /**
     * Transforma os campos de um VO em uma lista de Strings
     *
     * @return lista de strings com os valores em ordem
     */
    public List<String> converterVoParaString(CargoVO cargo) {
        List<String> valores = new ArrayList<String>();

        valores.add(cargo.getIdCargo().toString());
        valores.add(cargo.getNoCargo());
        valores.add(cargo.getDsAtividade().toString());

        return valores;
    }

        public List<String> converterVoParaString(SalarioVO salario) {
        List<String> valores = new ArrayList<String>();

        valores.add(salario.getIdSalario().toString());
        valores.add(salario.getCdCargo().toString());
        valores.add(salario.getVlSalario().toString());
        valores.add(salario.getDtInicioVigencia().toString());
        valores.add(salario.getDtFimVigencia().toString());
        
        return valores;
    }


    /**
     *
     */
    public Date validaData(String data) throws Exception {
        try {
            DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT);
           return df.parse(data);
        } catch ( java.text.ParseException pe) {
            throw new Exception("Por favor, informe uma data válida 5");//pe.getMessage();
        }
    }

    private void vincularSalarioAoCargo(CargoVO cargo, SalarioVO salario) {
        throw new UnsupportedOperationException("Not yet implemented");
    }

}
